// 导入express
var express = require('express');
// 模块化
var router = express.Router();

//导入moment  ---  moment时间格式化的包
const find=require('../../model/find_model');

const mongoose=require('mongoose')

// ******import 这里不需要设置集合中文档的属性以及属性值的类型  因为notes集合已经存在所有只需要获取对象
// 创建模型对象  ，对文档操作的封装对象
const noteModel=mongoose.model('notes');

//获取get请求的查询页面中单条数据
router.get('/record/:id',(req, res) => {
    // 获取请求的id参数
    let id = req.params.id;
    noteModel.find({_id: id},(err,data)=>{
        if (err) {
            // 响应失败的提示
            res.json({
                code:'1004',
                //响应信息
                msg:'查询失败~~',
                // 响应的数据
                data:null
            });
            return;
        }
        // 响应成功的提示
        res.json({
            // 响应编号 0000 - 表示响应成功
            code:'0000',
            //响应信息
            msg:'查询成功~~',
            // 响应的数据
            data:data
        });
    });
})

//获取get请求的查询页面中所有的数据   (查看添加记录页面)
router.get('/record', function (req, res, next) {
    //读取数据库中的文档对象
    find.api_find(noteModel,res);
});

//获取post请求的成功添加数据   (新增记录)
router.post('/success', function (req, res, next) {

        // 向数据库插入请求体的值
        noteModel.create({
            ...req.body
        }, (err, data) => {
            if (err) {
                // 响应成功的提示
                res.json({
                    // 响应编号 1002 - 表示响应失败
                    code:'1002',
                    //响应信息
                    msg:'添加失败~~',
                    // 响应的数据
                    data:null
                });
                return;
            }
            // 响应成功的提示
            res.json({
                // 响应编号 0000 - 表示响应成功
                code:'0000',
                //响应信息
                msg:'添加成功~~',
                // 响应的数据
                data:data
            });
    });
});

//删除对应id的记录
router.delete('/record/:id', (req, res) => {
    // 获取请求的id参数
    let id = req.params.id;
    // 删除
    noteModel.deleteOne({_id:id},(err,data)=>{
        if (err) {
            // 响应失败的提示
            res.json({
                code:'1003',
                //响应信息
                msg:'删除失败~~',
                // 响应的数据
                data:null
            });
            return;
        }
        // 响应成功的提示
        res.json({
            // 响应编号 0000 - 表示响应成功
            code:'0000',
            //响应信息
            msg:'删除成功~~',
            // 响应的数据
            data:data
        });
    });

})

//更新对应id的信息
router.patch('/record/:id',(req, res) => {
    // 获取请求的id参数
    let id = req.params.id;
    // 更新信息
    noteModel.updateOne({_id: id},req.body,(err,data)=>{
        if (err) {
            // 响应失败的提示
            res.json({
                code:'1005',
                //响应信息
                msg:'更新失败~~',
                // 响应的数据
                data:null
            });
            return;
        }
        // 响应成功的提示
        res.json({
            // 响应编号 0000 - 表示响应成功
            code:'0000',
            //响应信息
            msg:'更新成功~~',
            // 响应的数据
            data:data
        });
    });
});

// 暴漏模块
module.exports = router;